The present invention relates to distributed computing and, more specifically, to environmentally sustainable computing in a distributed computer network.
Environmentally responsible computing (also known as “green IT”) has been defined as the design, manufacture, use, and disposal of information technology (IT)-related devices and services (e.g., computers, servers, and subsystems such as monitors, printers, and storage devices, as well as associated network and communications systems) using mechanisms that are determined to incur the least amount impact on the environment; that is, a reduced or minimized ‘carbon footprint.’ Green IT is also known to focus on finding ways to balance economic viability and efficient system performance with social and ethical responsibilities.
In terms of moving toward environmentally responsible usage of computer systems and network services, some organizations have adopted standards that provide guidance in terms of measures one may employ to minimize the environmental impact of IT-related systems and activities (e.g., measures that will reduce energy consumption). While such standards and practices may be useful in some types of applications and computer networks (e.g., pre-configured networks, such as those in which there exist a priori knowledge of the structure of the system/network (e.g., network topology, network latency, and number of computers)), they do not readily address distributed networks which may lack a persistent structure (e.g., peer-to-peer networks). A distributed network architecture may be defined as a system in which multiple autonomous computers (nodes) communicate through a network with one another to achieve a common goal or to solve complex computational problems. In a distributed computer network, a problem may be divided into multiple smaller tasks, each of which is processed or solved by a computer in the network.
Nodes or computers within a peer-to-peer (P2P) network typically lack knowledge of the structure of the network topology. For example, the P2P network may consist of many different computers and network links and, by its nature, the system may be subject to change during execution of various computational tasks performed therein. Further, each computer or node in the network may have only a limited view of the network itself, as well as other computers/nodes on the network. Cloud computing networks (e.g., grid systems) are another such example of a distributed network architecture. In current distributed computer networks that utilize cooperative computational services (e.g., peer-to-peer networks, cloud computing networks), there is no mechanism that allows for blending or balance of cooperative computational requests between network nodes and services of varying degrees of environmental impact.
What is needed, therefore, is way to enable users of cooperative computational services to specify a balance between computational task completion and environmental impact for the task.